package com.defysoft.waukids;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import org.json.JSONObject;

import android.os.Bundle;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class TestPhotoUp extends BaseActivity_UpPhoto {

	@Override
	protected void onCreate(Bundle arg0) {
		// TODO Auto-generated method stub
		super.onCreate(arg0);
		setContentView(R.layout.testphotoup_activity);
		addImageData((ImageView) findViewById(R.id.test_photoup_one));// 이미지뷰를업로드용으로사용시지정
		addImageData((ImageView) findViewById(R.id.test_photoup_two));
		addImageData((ImageView) findViewById(R.id.test_photoup_three));
		imageList.get(0).iv.setOnClickListener(new OnClickListener() { // 이미지뷰터치시동작지정
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						addPhotoListener(0);

					}
				});
		imageList.get(1).iv.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				addPhotoListener(1);

			}
		});
		imageList.get(2).iv.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				addPhotoListener(2);

			}
		});
		((TextView) findViewById(R.id.test_photoup_btnone))
				.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						startDIal();
							startupNetwork(0);
						
					}
				});
		
	}

	@Override
	protected void handlingMessage(Message _message) {
		// TODO Auto-generated method stub
		super.handlingMessage(_message);
		endDIal();
		
	}

	@Override
	public void upImageThread(int choice) {
		// TODO Auto-generated method stub
		super.upImageThread(choice);
		final int cho = choice;
		upThread = new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				JSONObject jsonObject = null;
				try {
					if (imageList.get(cho).bitmap != null) {
						StringBuffer postDataBuilder = new StringBuffer();
						// 추가하고 싶은 Key & Value 추가key & value를 추가한 후 꼭 경계선을 삽입해줘야
						// 데이터를 구분할 수 있다.파일 첨부
						postDataBuilder.append(delimiter);
						postDataBuilder.append(setValue("filename", "notice"));
						postDataBuilder.append(delimiter);
						postDataBuilder.append(setValue("folder", "logophoto"));
						postDataBuilder.append(delimiter);
						postDataBuilder.append(setValue("delimg", "notice_1421730869.68.png"));
						postDataBuilder.append(delimiter);
						postDataBuilder.append(setFile("photo", "temp.jpg"));
						postDataBuilder.append("\r\n");
						// 커넥션 생성 및 설정
						HttpURLConnection conn = (HttpURLConnection) new URL(
								"http://waukids.com/waukids/publicupimage.php")
								.openConnection();
						conn.setDoInput(true);
						conn.setDoOutput(true);
						conn.setUseCaches(false);
						conn.setRequestMethod("POST");
						conn.setRequestProperty("Connection", "Keep-Alive");
						conn.setRequestProperty("Content-Type",
								"multipart/form-data;boundary=" + boundary);// 전송
																			// 작업
																			// 시작
						DataOutputStream out = new DataOutputStream(
								new BufferedOutputStream(conn.getOutputStream()));
						// 위에서 작성한 메타데이터를 먼저 전송한다. (한글이 포함되어 있으므로 UTF-8 메소드사용)
						out.writeUTF(postDataBuilder.toString());
						// 파일 복사 작업 시작
						byte[] buffer = getbitmap(imageList.get(cho).bitmap,
								70);

						// 버퍼 크기만큼 파일로부터 바이트 데이터를 읽는다.전송
						out.write(buffer);
						out.writeBytes(delimiter); // 반드시 작성해야 한다.
						out.flush();
						out.close();
						// 전송끝, 피드백
						BufferedReader br = new BufferedReader(
								new InputStreamReader(conn.getInputStream()));
						String checkmsg;
						String msg = br.readLine();
						while ((checkmsg = br.readLine()) != null) {
							msg += checkmsg;
						}
						jsonObject = new JSONObject(msg);
						if (jsonObject.getString("success").equals("true")) {
							Toast.makeText(TestPhotoUp.this,
									jsonObject.getString("payload"),
									Toast.LENGTH_LONG);
							onNetworkCallback(0, "");
							// 성공처리
						} else {
							onNetworkCallback(0, "");
							// 실패처리
						}
					}
				} catch (Exception e) {
					onNetworkCallback(CATCH_EXCEPTION, e.toString());
				}
			}
			
		});
		upThread.start();
		
	}
}
